草庐IT

jQuery UI 实例

全部标签

c++ - 编译后的程序是否可能不包含实例化的模板类?

考虑这段代码:templateclassA{Tx;//Abunchoffunctions};std::size_ts=sizeof(A);假设sizeof运算符是唯一一个实例化A的地方是必须的。编译后的程序是否不包含A的相关代码?(例如A::~A())? 最佳答案 该类将被实例化,但编译器不得实例化任何成员函数定义,[temp.inst]/1:[...]theclasstemplatespecializationisimplicitlyinstantiatedwhenthespecializationisreferencedinac

使用花括号而不是赋值运算符的作用域变量的 C++ 声明和实例化

我正在观看BjarneStroustrup的C++11风格主题演讲(link)(00:35:30),但我无法理解以下内容(从幻灯片复制的代码):voidf(intn,intx){Gadgetg{n};//...if(x我尝试使用结构和对象编译此代码,但在这两种情况下,编译器都告诉我它需要一个“;”在Gadgetg声明的末尾,不会编译。因此我的问题是:我假设g正在被实例化是否正确?Gadget必须是什么类型的对象才能编译此代码?这一行的概念是什么:Gadgetg{n};?即声明后的大括号是什么?(可能太宽泛了,但是)为什么编译器不能将大括号识别为有效语法? 最

c++ - 未定义模板的隐式实例化 'std::__1::array<int, 3>'

我复制并粘贴了这个确切的代码,找到了here进入我的IDE,出现错误,我不明白为什么会这样,想了解原因。std::arraya2={1,2,3};//exceptafter= 最佳答案 一定要记住#includeButifyoudon'tincludeanystandardheaders,youshouldgetasimplererroraboutstdbeingundefined. 关于c++-未定义模板的隐式实例化'std::__1::array',我们在StackOverflow上

c++ - 为什么T&&实例化为int&?

谁能解释一下为什么会编译,为什么t会以int&类型结束?#includevoidf(int&r){++r;}templatevoidg(Funfun,T&&t){fun(std::forward(t));}intmain(){inti=0;g(f,i);}我在GCC4.5.020100604和GDB7.2-60.2上看到了这个 最佳答案 因为完美转发,当P&&的参数是一个左值时,P将被推导为参数的类型加上一个&附上。所以你得到int&&&,其中P是int&。如果参数是右值,则P将仅推导为参数的类型,因此您将得到一个带有P的int&&

python中使用海龟绘图的实例

海龟绘图是python中的一个很常见的库,它可以实现绘画的功能。今天,小编为大家带来了一些海龟绘图的实例。1、画一只海豚源码如下:importturtle#设置画布大小和背景颜色turtle.setup(600,400)turtle.bgcolor("lightblue")#设置画笔颜色和粗细turtle.pensize(3)turtle.pencolor("black")#绘制海豚身体turtle.fillcolor("white")turtle.begin_fill()turtle.circle(80)turtle.end_fill()#绘制海豚眼睛turtle.penup()turtle

c++ - C++ 中的对象实例化是否存在显着的固有成本?

最近在一次代码审查中(一位年长且更聪明的C++开发人员)告诉我重写我编写的一个类,将它变成一组静态方法。他通过说虽然我的对象确实包含非常少量的内部状态来证明这一点,但它无论如何都可以在运行时派生,如果我改为静态方法,我将避免到处实例化对象的成本。我现在进行了此更改,但它让我开始思考,在C++中实例化的成本是多少?我知道在托管语言中,垃圾收集对象的所有成本都很重要。但是,我的C++对象只是在堆栈上,它不包含任何虚方法,因此不会有运行时函数查找成本。我使用了新的C++11删除机制来删除默认的复制/赋值运算符,因此不涉及复制。它只是一个简单的对象,带有一个只做少量工作的构造函数(静态方法无论

C++ 实例初始化语法

这个问题在这里已经有了答案:Isthereadifferencebetweencopyinitializationanddirectinitialization?(9个回答)关闭4年前。给定这样一个类:classFoo{public:Foo(int);Foo(constFoo&);Foo&operator=(int);private://...};这两条线是完全等价的,还是它们之间有细微的差别?Foof(42);Foof=42;编辑:我通过在原始问题中使Foo构造函数“显式”来混淆问题。我已将其删除,但感谢您的回答。我还添加了复制构造函数的声明,以明确复制可能不是一个微不足道的操作。我

c++ - 有没有办法用类实例指针调用构造函数?

我们可以通过类指针显式调用析构函数,为什么不可以调用构造函数呢?有什么想法吗?#includeclassCon{public:Con(intx):x(x){}private:intx;};intmain(){Con*c=newCon(1);//c->Con(2);//illegalc->~Con();//ok!deletec;}谢谢, 最佳答案 其实是可以调用的,只是语法不是调用成员方法的语法(析构函数是特例),所以没有成员访问运营商。相反,您必须求助于placement-new语法:Conc;c.~Con();//destroy,

c++ - 在同一 DLL 的实例之间共享静态和全局变量

首先,有一些与此类似的问题,但没有一个真正解决确切的问题:https://social.msdn.microsoft.com/forums/vstudio/en-US/b7701ee5-c9fa-4693-8ae1-d59736360514/question-about-static-variables-in-dllhttp://cboard.cprogramming.com/cplusplus-programming/101543-global-static-variable-class-delivered-dll.html所以,这是我的问题:我正在开发一个VST插件,并且我有一个在

c++ - C++ 编译器隐式实例化模板类的所有成员函数是否有效?

假设我有一个公共(public)类和一个私有(private)实现类(例如PIMPL模式),我想用一个带有检查删除的模板智能指针类来包装私有(private)类,如下所示:PublicClass.hclassPrivateClass;//simplesmartpointerwithcheckeddeletetemplateclassdemo_ptr{public:demo_ptr(X*p):the_p(p){}~demo_ptr(){//fromboost::checked_delete:don'tallowcompilationofincompletetypetypedefchart